MULTIPATH.CONF(5) | File Formats Manual | MULTIPATH.CONF(5) |
NAME¶
multipath.conf - multipath daemon configuration file
DESCRIPTION¶
multipath.conf is the configuration file for the multipath daemon. It is used to overwrite the built-in configuration table of multipathd. Any line whose first non-white-space character is a '#' is considered a comment line. Empty lines are ignored.
SYNTAX¶
The configuration file contains entries of the form:
<section> {
<attribute> <value> ... <subsection> {
<attribute> <value> ...
}
}
Each section contains one or more attributes or subsections. The recognized keywords for attributes or subsections depend on the section in which they occor.
The following section keywords are recognized:
- defaults
- This section defines default settings for devices-mapper-multipath. These values can be overwritten by the devices and multipaths sections.
- blacklist
- This section defines which devices should be excluded from the multipath topology discovery.
- blacklist_exceptions
- This section defines which devices should be included in the multipath topology discovery, despite being listed in the blacklist section.
- multipaths
- This section defines the settings for individual multipath devices. These values overwrite what is specified in the defaults and devices section of the configuration file. The devices are identified by the wwid keyword, which is a regular expression that must match the result of the getuid_callout program.
- devices
- This section defines the settings for individual storage controller types. These value overwrite what is specified in the defaults section of the configuration file. These controller types are identified by the vendor, product, and revision keywords, which are regular expressions that must match the sysfs information about this device. If you are using a storage array that is not supported by default, you may need to create a devices subsection for your array.
The priority of configuration in multipath.conf is:
multipaths is greater than devices is greater that
defaults
defaults section¶
The defaults section recognizes the following keywords:
- polling_interval
- interval between two path checks in seconds For properly functioning paths, the interval between checks will gradually increase to (4 * polling_interval); default is 5
- udev_dir
- directory where udev creates its device nodes; default is /dev
- multipath_dir
- directory where the dynamic shared objects are stored; default is system dependent, commonly /lib/multipath
- find_multipaths
- If set to yes , instead of trying to create a multipath device for every non-blacklisted path, multipath will only create a device if one of three condidions are met. 1 There are at least two non-blacklisted paths with the same wwid, 2 the user manually forces the creation, by specifying a device with the multipath command, or 3 a path has the same WWID as a multipath device that was previously created while find_multipaths was set (even if that multipath device doesn't currently exist). Whenever a multipath device is created with find_multipaths set, multipath will remeber the WWID of the device, so that it will automatically create the device again, as soon as it sees a path with that WWID. This should allow most users to have multipath automatically choose the correct paths to make into multipath devices, without having to edit the blacklist; Default is no
- verbosity
- default verbosity. Higher values increase the verbosity level. Valid levels are between 0 and 6; default is 2
- path_selector
- The default path selector algorithm to use; they are offered by the kernel multipath target. There are three selector algorithms.
- round-robin 0
- Loop through every path in the path group, sending the same amount of IO to each.
- queue-length 0
- Send the next bunch of IO down the path with the least amount of outstanding IO.
- service-time 0
- Choose the path for the next bunch of IO based on the amount of outstanding IO to the path and its relative throughput.
- path_grouping_policy
- The default path grouping policy to apply to unspecified multipaths. Possible values are
- failover
- 1 path per priority group
- multibus
- all paths in 1 priority group
- group_by_serial
- 1 priority group per serial number
- group_by_prio
- 1 priority group per priority value. Priorities are determined by callout programs specified as a global, per-controller or per-multipath option in the configuration file.
- group_by_node_name
- 1 priority group per target node name. Target node names are fetched in /sys/class/fc_transport/target*/node_name.
- Default value is multibus.
- getuid_callout
- The default program and args to callout to obtain a unique path identifier. Should be specified with an absolute path. Default value is /lib/udev/scsi_id --whitelisted --device=/dev/%n
- prio
- The default method used to obtain a path priority value. Possible values are
- const
- Set a priority of one to all paths
- emc
- Generate the path priority for EMC arrays
- alua
- Generate the path priority based on the SCSI-3 ALUA settings. This prioritizer has one optional argument exclusive_pref_bit
- tpg_pref
- Generate the path prority based on the SCSI-3 ALUA settings, using the preferred port bit.
- ontap
- Generate the path priority for NetApp arrays.
- rdac
- Generate the path priority for LSI/Engenio/NetApp E-Series RDAC controller.
- hp_sw
- Generate the path priority for Compaq/HP controller in active/standby mode.
- hds
- Generate the path priority for Hitachi HDS Modular storage arrays.
- weighted
- hbtl|devname <regex1> <prio1> <regex2> <prio2> ... Generate the path priority base on the regular expressions and the priorities provided. hbtl regexes are of the SCSI H:B:T:L format. Ex: 1:0:0:1 , 5:.* devname regexes are device names Ex: sda , sd.e Note: These values may change on reboot, or if the device is removed. Using this prioritizer may require editting multipath.conf after bootup to correctly set the priority.
- Default value is const.
- features
- Specify any device-mapper features to be used. Syntax is num list where num is the number of features in list. Possible values for the feature list are
- queue_if_no_path
- Queue IO if no path is active; identical to the no_path_retry keyword.
- no_partitions
- Disable automatic partitions generation via kpartx.
- path_checker
- The default method used to determine the paths' state. Possible values are
- readsector0
- Read the first sector of the device
- tur
- Issue a TEST UNIT READY command to the device.
- emc_clariion
- Query the EMC Clariion specific EVPD page 0xC0 to determine the path state.
- hp_sw
- Check the path state for HP storage arrays with Active/Standby firmware.
- rdac
- Check the path state for LSI/Engenio/NetApp E-Series RDAC storage controller.
- directio
- Read the first sector with direct I/O.
- Default value is readsector0.
- failback
- Tell multipathd how to manage path group failback.
- immediate
- Immediately failback to the highest priority pathgroup that contains active paths.
- manual
- Do not perform automatic failback.
- followover
- Only perform automatic failback when the first path of a pathgroup becomes active. This keeps a node from automatically failing back when another node requested the failover.
- values > 0
- deferred failback (time to defer in seconds)
- Default value is manual.
- rr_min_io
- The number of IO to route to a path before switching to the next in the same path group, using bio-based device-mapper-multipath. This is only for systems running kernels older that 2.6.31. Newer systems should use rr_min_io_rq. Default is 1000
- rr_min_io_rq
- The number of IO to route to a path before switching to the next in the same path group, using request-based device-mapper-multipath. This setting should be used on systems running current kernels. On systems running kernels older than 2.6.31, use rr_min_io. Default is 1
- rr_weight
- If set to priorities the multipath configurator will assign path weights as "path prio * rr_min_io". Possible values are priorities or uniform uniform
- no_path_retry
- Specify the number of retries until disable queueing, or fail for immediate failure (no queueing), queue for never stop queueing. Default is 0.
- user_friendly_names
- If set to yes , using the bindings file /etc/multipath/bindings to assign a persistent and unique alias to the multipath, in the form of mpath<n>. If set to no use the WWID as the alias. In either case this be will be overriden by any specific aliases in the multipaths section. Default is no
- queue_without_daemon
- If set to no , multipathd will disable queueing for all devices when it is shut down. Default is no
- flush_on_last_del
- If set to yes , multipathd will disable queueing when the last path to a device has been deleted. Default is no
- max_fds
- Specify the maximum number of file descriptors that can be opened by multipath and multipathd. This is equivalent to ulimit -n. A value of max will set this to the system limit from /proc/sys/fs/nr_open. If this is not set, the maximum number of open fds is taken from the calling process. It is usually 1024. To be safe, this should be set to the maximum number of paths plus 32, if that number is greated than 1024.
- checker_timeout
- Specify the timeout to user for path checkers and prioritizers that issue scsi commands with an explicit timeout, in seconds; default taken from /sys/block/sd<x>/device/timeout
- fast_io_fail_tmo
- Specify the number of seconds the scsi layer will wait after a problem has been detected on a FC remote port before failing IO to devices on that remote port. This should be smaller than dev_loss_tmo. Setting this to off will disable the timeout.
- dev_loss_tmo
- Specify the number of seconds the scsi layer will wait after a problem has been detected on a FC remote port before removing it from the system. This can be set to "infinity" which sets it to the max value of 2147483647 seconds, or 68 years.
- log_checker_err
- If set to once , multipathd logs the first path checker error at logging level 2. Any later errors are logged at level 3 until the device is restored. If set to always , multipathd always logs the path checker error at logging level 2. Default is always
- hwtable_regex_match
- If set to yes , user device configs will be regular expression matched against the builtin configs to determine if they should modify an existing config or create a new one. If set to no , user device configs will be string matched against the builtin configs to determine if they should modify an existing config or create a new one. Default is no
- reservation_key
- This is the service action reservation key used by mpathpersist. It must be set for all multipath devices using persistent reservations, and it must be the same as the RESERVATION KEY field of the PERSISTENT RESERVE OUT parameter list which contains an 8-byte value provided by the application client to the device server to identify the I_T nexus. It is unset by default.
- retain_attached_hw_handler
- If set to yes and the scsi layer has already attached a hardware_handler to the device, multipath will not force the device to use the hardware_handler specified by mutipath.conf. If the scsi layer has not attached a hardware handler, multipath will continue to use its configured hardware handler. Default is no
- detect_prio
- If set to yes , multipath will try to detect if the device supports ALUA. If so, the device will automatically use the alua prioritizer. If not, the prioritizer will be selected as usual. Default is no
- reload_readwrite
- If set to yes , multipathd will monitor change events on path devices. When it receives a change event for a path of a readonly multipath device, it will check if the path is now read/write. If so, multipathd will reload the multipath device to switch it to read/write. Default is no
- replace_wwid_whitespace
- If set to yes devices using the default getuid callout (scsi_id) will add --relace-whitespace to the callout line. This will cause any whitespace in the wwid to be replaced with one underscore.
- force_sync
- If set to yes , multipathd will call the path checkers in sync mode only. This means that only one checker will run at a time. This is useful in the case where many multipathd checkers running in parallel causes significant CPU pressure. The Default is no
- config_dir
- If set to anything other than "", multipath will search this directory alphabetically for file ending in ".conf" and it will read configuration information from them, just as if it was in /etc/multipath.conf. config_dir must either be "" or a fully qualified directory name. Default is /etc/multipath/conf.d
- delay_watch_checks
- If set to a value greater than 0, multipathd will watch paths that have recently become valid for this many checks. If they fail again while they are being watched, when they next become valid, they will not be used until they have stayed up for delay_wait_checks checks. Default is no
- delay_wait_checks
- If set to a value greater than 0, when a device that has recently come back online fails again within delay_watch_checks checks, the next time it comes back online, it will marked and delayed, and not used until it has passed delay_wait_checks checks. Default is no
- skip_kpartx
- If set to yes , kpartx will not automatically create partitions on the device. The default is no
- disable_changed_wwids
- If set to yes and the wwid of a path device changes while it is part of a multipath device, multipath will disable access to the path device until the wwid of the path is restored to the wwid of the multipath device. Default is no
- max_sectors_kb
- Sets the max_sectors_kb device parameter on all path devices and the multipath device to the specified value. Default is device dependent.
blacklist section¶
The blacklist section is used to exclude specific device from inclusion in the multipath topology. It is most commonly used to exclude local disks or LUNs for the array controller.
The following keywords are recognized:
- wwid
- The World Wide Identification of a device.
- devnode
- Regular expression of the device nodes to be excluded.
- device
- Subsection for the device description. This subsection recognizes the vendor and product keywords. For a full description of these keywords please see the devices section description.
blacklist_exceptions section¶
The blacklist_exceptions section is used to revert the actions of the blacklist section, ie to include specific device in the multipath topology. This allows to selectively include devices which would normally be excluded via the blacklist section.
The following keywords are recognized:
- wwid
- The World Wide Identification of a device.
- devnode
- Regular expression of the device nodes to be excluded.
- device
- Subsection for the device description. This subsection recognizes the vendor and product keywords. For a full description of these keywords please see the devices section description.
multipaths section¶
The only recognized attribute for the multipaths section is the multipath subsection.
The multipath subsection recognizes the following attributes:
- wwid
- Index of the container. Mandatory for this subsection.
- alias
- (Optional) symbolic name for the multipath map.
The following attributes are optional; if not set the default values are taken from the defaults section:
devices section¶
The only recognized attribute for the devices section is the device subsection.
The device subsection recognizes the following attributes:
- vendor
- (Mandatory) Vendor identifier
- product
- (Mandatory) Product identifier
- revision
- Revision identifier
- product_blacklist
- Product strings to blacklist for this vendor
- hardware_handler
- (Optional) The hardware handler to use for this device type. The following hardware handler are implemented:
- 1 emc
- Hardware handler for EMC storage arrays.
- 1 alua
- Hardware handler for SCSI-3 ALUA arrays.
- 1 hp_sw
- Hardware handler for Compaq/HP controllers.
- 1 rdac
- Hardware handler for the LSI/Engenio/NetApp E-Series RDAC storage controller.
The following attributes are optional; if not set the default values are taken from the defaults section:
- path_grouping_policy
- getuid_callout
- path_selector
- path_checker
- features
- prio
- failback
- rr_weight
- no_path_retry
- rr_min_io
- rr_min_io_rq
- fast_io_fail_tmo
- dev_loss_tmo
- flush_on_last_del
- retain_attached_hw_handler
- detect_prio
- reload_readwrite
- delay_watch_checks
- delay_wait_checks
- skip_kpartx
- max_sectors_kb
KNOWN ISSUES¶
The usage of queue_if_no_path option can lead to D state processes being hung and not killable in situations where all the paths to the LUN go offline. It is advisable to use the no_path_retry option instead.
SEE ALSO¶
udev(8), dmsetup(8) multipath(8) multipathd(8)
AUTHORS¶
multipath was developed by Christophe Varoqui, <christophe.varoqui@free.fr> and others.
30 November 2006 |